#2017年省赛-程序设计题 分巧克力
n, k = map(int, input().split())
choco = [list(map(int, input().split())) for _ in range(n)]
a, b = 1, 10 ** 5

def find(len):
    global k
    ans = 0
    for i, j in choco:
        ans += (i // len) * (j // len)  # 当前巧克力能分多少块
        if ans >= k:
            return True
    return False

while a < b:
    mid = (a + b + 1) // 2  # +1确保在a和b相邻时，mid取b的值
    if find(mid):
        # 说明可能还有更大的边长也满足
        a = mid
    else:
        # 说明需要尝试更小的边长
        b = mid - 1

print(b)